using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// Summary description for clsUsuario
/// </summary>
/// 
namespace AccesoDatos
{
    class clsUsuario
    {
        public string _stringConexion = ConfigurationManager.ConnectionStrings["SQL"].ToString();

        public clsUsuario()
        {
            //
            // TODO: Add constructor logic here
            //
        }

        public DataSet ObtenerUsuarios(string Where, string Orden)
        {
            try
            {
                return SqlHelper.ExecuteDataset(_stringConexion, "spObtenerUsuarios", Where, Orden);
            }
            catch (Exception ex)
            {
                throw new System.Exception("Error al Obtener la lista de usuarios. Error: " + ex.Message);
            }
        }

        public DataSet ObtenerUsuarioXId(int Id)
        {
            try
            {
                return SqlHelper.ExecuteDataset(_stringConexion, "spObtenerUsuarioXId", Id);
            }
            catch (Exception ex)
            {
                throw new System.Exception("Error al Obtener los datos del usuario. Error: " + ex.Message);
            }
        }

        public DataSet ObtenerEstatusXPerfil(int Perfil, int Estatus)
        {
            try
            {
                return SqlHelper.ExecuteDataset(_stringConexion, "spObtenerEstatusXPerfil", Perfil, Estatus);
            }
            catch (Exception ex)
            {
                throw new System.Exception("Error al Obtener la lista de estatus para este usuario. Error: " + ex.Message);
            }
        }

        public DataSet ValidarUsuario(string Login, string Cedula)
        {
            try
            {
                return SqlHelper.ExecuteDataset(_stringConexion, "spValidarUsuario", Login, Cedula);
            }
            catch (Exception ex)
            {
                throw new System.Exception("Error al validar el usuario. Error: " + ex.Message);
            }
        }

        public int Agregar(string Login, string Password, string Nombre, string Apellido, string Cedula, string Pregunta, string Respuesta, string Sexo, string Telefono, string Email, int NumIntentos, int Estatus, int Perfil, int Nacionalidad, int US_Ins)
        {
            try
            {
                return Convert.ToInt32(SqlHelper.ExecuteScalar(_stringConexion, "spRegistrarUsuario", Login, Password, Nombre, Apellido, Cedula, Pregunta, Respuesta, Sexo, Telefono, Email, NumIntentos, Estatus, Perfil, Nacionalidad, US_Ins));
            }
            catch (Exception ex)
            {
                throw new System.Exception("Error al Agregar un usuario. Error: " + ex.Message);
            }
        }

        public int Editar(int Id, string Login, string Password, string Nombre, string Apellido, string Cedula, string Pregunta, string Respuesta, string Sexo, string Telefono, string Email, int NumIntentos, int Estatus, int Perfil, int Nacionalidad, int US_Mod)
        {
            try
            {
                return Convert.ToInt32(SqlHelper.ExecuteScalar(_stringConexion, "spEditarUsuario", Id, Login, Password, Nombre, Apellido, Cedula, Pregunta, Respuesta, Sexo, Telefono, Email, NumIntentos, Estatus, Perfil, Nacionalidad, US_Mod));
            }
            catch (Exception ex)
            {
                throw new System.Exception("Error al Modificar un usuario. Error: " + ex.Message);
            }
        }

        public void Eliminar(int Id)
        {
            try
            {
                SqlHelper.ExecuteNonQuery(_stringConexion, "spEliminarUsuario", Id);
            }
            catch (Exception ex)
            {
                throw new System.Exception("Error al Eliminar un usuario. Error: " + ex.Message);
            }
        }

        public void EditarMisDatos(int Id, string Password, string Nombre, string Apellido, string Cedula, string Pregunta, string Respuesta, string Sexo, string Telefono, string Email, int Nacionalidad, int US_Mod)
        {
            try
            {
                SqlHelper.ExecuteNonQuery(_stringConexion, "spEditarMisDatos", Id, Password, Nombre, Apellido, Cedula, Pregunta, Respuesta, Sexo, Telefono, Email, Nacionalidad, US_Mod);
            }
            catch (Exception ex)
            {
                throw new System.Exception("Error al Modificar un usuario. Error: " + ex.Message);
            }
        }

    }
}